النسخ المتماثل Master-Slave لقواعد بيانات MySQL على نفس الجهاز
مقدمة
تعتبر النسخ المتماثل بين الخوادم (Replication) واحدة من الميزات الأساسية التي توفرها معظم أنظمة إدارة قواعد البيانات الحديثة مثل MySQL. في بيئة MySQL، يُستخدم النسخ المتماثل بين الخوادم بتقنية الـ Master-Slave لتحقيق التكرار وتوفير النسخ الاحتياطية، فضلاً عن تحسين الأداء والتوزيع الجغرافي للبيانات. في هذه المقالة، سنتناول بالتفصيل كيفية إعداد النسخ المتماثل Master-Slave لقواعد بيانات MySQL على نفس الجهاز. سنغطي كل خطوة من خطوات الإعداد والتطبيق، بالإضافة إلى الفوائد التي يمكن الحصول عليها من هذه التقنية.
ما هو النسخ المتماثل Master-Slave؟
النسخ المتماثل Master-Slave هو نمط من أنماط التكرار حيث يتم تحديد خادم واحد كـ “Master” (رئيسي) والخوادم الأخرى كـ “Slaves” (تابعة). يتولى الخادم Master معالجة جميع عمليات الكتابة والتحديثات على قاعدة البيانات، بينما يقوم الخادم Slave بنسخ هذه التحديثات بشكل دوري من الخادم Master. هذه العملية توفر نسخة احتياطية من البيانات على الخوادم التابعة وتحسن من القدرة على توزيع الحمل.
في هذا السياق، سنتحدث عن إعداد النسخ المتماثل Master-Slave على نفس الجهاز، وهو أمر غير تقليدي ولكنه مفيد لأغراض الاختبار والتعلم. عادة ما يكون النسخ المتماثل بين الخوادم المختلفة في بيئات الإنتاج، ولكن إعداد النسخ المتماثل على جهاز واحد يساعد في فهم الأساسيات ومفاهيم النسخ المتماثل دون الحاجة إلى بيئة متعددة الخوادم.
الفوائد الرئيسية للنسخ المتماثل Master-Slave
-
زيادة التوافرية: يضمن النسخ المتماثل بقاء نسخة من البيانات في حالة حدوث خلل في الخادم الرئيسي.
-
تحسين الأداء: من خلال توزيع الاستعلامات بين الخادم الرئيسي والخوادم التابعة، يمكن تحسين أداء القراءة.
-
النسخ الاحتياطي التلقائي: يوفر النسخ الاحتياطي التلقائي على الخادم التابع، مما يسهل استرجاع البيانات في حالة حدوث عطل مفاجئ.
-
تحسين التوزيع الجغرافي للبيانات: يساعد في توزيع البيانات بين الخوادم في مناطق جغرافية مختلفة (لكننا سنتناول هذا الموضوع في سياق النسخ المحلي على نفس الجهاز).
خطوات إعداد النسخ المتماثل Master-Slave على نفس الجهاز
1. التحضير
قبل أن نبدأ في عملية إعداد النسخ المتماثل، يجب أن نتأكد من أن لدينا بيئة تشغيل مناسبة:
-
تثبيت MySQL على جهازك.
-
تحديد المسار الصحيح لملفات البيانات.
-
التأكد من أن MySQL يعمل بشكل صحيح.
2. إعداد الخادم الرئيسي (Master)
أول خطوة هي تكوين الخادم الرئيسي (Master) للنسخ المتماثل:
تعديل ملف إعدادات MySQL
-
افتح ملف الإعدادات
my.cnfأوmy.iniحسب نظام التشغيل الخاص بك. في معظم الأنظمة، يوجد هذا الملف في المسار/etc/mysql/my.cnfأو/etc/my.cnf. -
تأكد من أن الخيارات التالية موجودة في قسم
[mysqld]:bash[mysqld] server-id = 1 log-bin = /var/log/mysql/mysql-bin.log binlog-do-db = your_database_name-
server-id: هو معرف فريد لكل خادم. يجب أن يكون مختلفًا بين الخوادم في حالة إعداد النسخ المتماثل بين أكثر من خادم. -
log-bin: هذا الخيار يمكن من تفعيل تسجيل التغييرات التي تحدث في قاعدة البيانات. -
binlog-do-db: تحديد قاعدة البيانات التي تريد أن تتم نسخها.
-
-
بعد تعديل الملف، قم بإعادة تشغيل خدمة MySQL لتطبيق التغييرات:
bashsudo systemctl restart mysql
3. إعداد الخادم التابع (Slave)
الخطوة التالية هي تكوين الخادم التابع (Slave) ليقوم بالنسخ من الخادم الرئيسي:
تعديل ملف إعدادات MySQL
-
قم بتحرير نفس الملف
my.cnfأوmy.iniعلى الخادم التابع. -
أضف الإعدادات التالية تحت قسم
[mysqld]:bash[mysqld] server-id = 2 relay-log = /var/log/mysql/mysql-relay-bin.log log-bin = /var/log/mysql/mysql-bin.log read-only = 1-
server-id: كما في الخادم الرئيسي، يجب أن يكون لكل خادم تابع معرف فريد. -
relay-log: هذا الخيار يحدد سجل إعادة التكرار الذي يقرأ منه الخادم التابع التغييرات. -
read-only: يجعل الخادم التابع للقراءة فقط (لا يسمح بالكتابة).
-
-
بعد تعديل الملف، قم بإعادة تشغيل MySQL على الخادم التابع:
bashsudo systemctl restart mysql
4. إعداد المستخدم الخاص بالنسخ المتماثل
لكي يتمكن الخادم التابع من الوصول إلى الخادم الرئيسي والنسخ منه، يجب إنشاء مستخدم خاص للنسخ المتماثل.
-
على الخادم الرئيسي، قم بفتح MySQL:
bashmysql -u root -p -
أنشئ مستخدمًا جديدًا للنسخ المتماثل:
sqlCREATE USER 'replica_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%'; FLUSH PRIVILEGES; -
تأكد من أن الخادم الرئيسي يعمل ويستجيب بشكل صحيح لطلبات النسخ.
5. الحصول على موقع النسخ (Master Status)
على الخادم الرئيسي، احصل على حالة النسخ الخاصة بالخادم باستخدام الأمر التالي:
sqlSHOW MASTER STATUS;
ستحصل على نتائج تحتوي على File و Position. هذه القيم ضرورية لتكوين الخادم التابع.
6. تكوين الخادم التابع للنسخ من الخادم الرئيسي
الآن، على الخادم التابع، يجب أن تقوم بتحديد الخادم الرئيسي الذي سينسخ منه البيانات باستخدام الأمر التالي:
sqlCHANGE MASTER TO
MASTER_HOST='localhost',
MASTER_USER='replica_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 154;
حيث:
-
MASTER_HOSTهو عنوان الخادم الرئيسي. -
MASTER_USERوMASTER_PASSWORDهما اسم المستخدم وكلمة المرور التي تم إنشاؤها على الخادم الرئيسي. -
MASTER_LOG_FILEوMASTER_LOG_POSهما القيم التي حصلنا عليها من الأمرSHOW MASTER STATUS.
7. بدء النسخ على الخادم التابع
بعد تكوين الخادم التابع، قم بتشغيل النسخ:
sqlSTART SLAVE;
يمكنك التحقق من حالة النسخ على الخادم التابع باستخدام:
sqlSHOW SLAVE STATUS\G
إذا كانت حالة Slave_IO_Running و Slave_SQL_Running كلاهما “Yes”، فهذا يعني أن النسخ المتماثل يعمل بشكل صحيح.
فوائد ومزايا النسخ المتماثل على نفس الجهاز
-
اختبار وتطوير التطبيقات: يمكن للمطورين اختبار تطبيقاتهم على بيئة مشابهة للبيئة الإنتاجية دون الحاجة إلى إعداد خوادم متعددة.
-
توفير موارد النظام: إعداد النسخ المتماثل على نفس الجهاز يوفر الموارد مقارنة بإعداد بيئة متعددة الخوادم.
-
سهولة الصيانة والاختبارات: في بيئة تطوير، يمكن اختبار النسخ المتماثل بسهولة بين الخوادم دون الحاجة لإعدادات معقدة.
-
تحسين الفهم لمفهوم النسخ المتماثل: يعتبر هذا الإعداد أداة تعليمية رائعة لفهم كيفية عمل النسخ المتماثل في MySQL.
الخلاصة
إعداد النسخ المتماثل Master-Slave في MySQL على نفس الجهاز هو أمر مفيد للأغراض التعليمية والاختبارية. يسمح هذا الإعداد بفهم كيفية تفاعل الخوادم الرئيسية والتابعة في النسخ المتماثل وتوزيع الحمل بشكل فعال. بعد تنفيذ الخطوات اللازمة، ستحصل على بيئة مختبرية تساعدك في التعرف على النسخ المتماثل واختبار تطبيقاتك بطريقة آمنة وفعالة.

